package com.token.sysflow.exception;

/**
 * @author chenjianxiong 2020/4/12
 */
public enum ErrorCodeEnum {
    /**
     *
     */
    SUCCESS(0, "成功"),
    FAILED(1, "失败"),
    DRAFT_POWER_ERROR(11001, "当前用户无起草权限！"),

    APP_DEFFLOW_ERROR(13003,"应用配置中的默认流程为空值！"),
    BACK_CHECK_PREAPPROVE(15001,"当前用户不是上一环节的办理人！"),
    OVER_CHECK_APPROVE(15003,"当前用户不是当前单据的起草人！"),
    CHECK_APPROVE(15002,"当前用户不是当前环节办理人！"),
    FLOW_NOACTIVE(15004,"流程没有激活！"),
    SUBFLOW_NOACTIVE(15005,"子流程没有激活！"),
    APPLYER_CHECK(15006,"当前用户不是此单据的申请人！"),
    APPROVETYPE_CALLHQ(15007,"只允许普通环节类型发起组织会签"),
    APPROVETYPE_CALLHS(15008,"只允许普通环节类型发起组织会审"),
    /**
     * 10000-10000 检查参数传入
     */
    FLOWSUBKEYUNID_NOFIND(10000,"子流程的[subKeyUnid]没有传入!"),
    PARA_FIELDVALUES_NOFIND(10001,"没有找到传入的表单字段参数[fieldValues]"),
    PARA_FIELDVALUE_NOFIND(10002,"对应配置的表单字段在参数[fieldValues]中没有找到"),
    /**
     * 12000-12100 检查数据是否存在
     */
    APP_NOFIND_ERROR(12000, "找不到应用配置！"),
    DEFFLOW_NOFIND_ERROR(12001, "找不到应用的默认流程！"),
    FORMFLOW_NOFIND_ERROR(12002, "找不到当前流程！"),
    TOFLOW_NOFIND_ERROR(12003, "找不到目标流程！"),
    FORMSTEP_NOFIND_ERROR(12004, "找不到当前流程环节！"),
    TOSTEP_NOFIND_ERROR(12005, "找不到目标流程环节！"),
    PATH_NOFIND_ERROR(12006, "找不到流向！"),
    KEYUNID_NOFIND_ERROR(12007,"keyUnid 找不到！"),
    FLOWSUB_NOFIND_ERROR(12008, "找不到环节的对应的子流程配置！"),
    STEPSTART_NOFIND_ERROR(12009,"找不到起草环节！"),
    APPROVER_NOFIND_ERROR(12010,"下一环节办理人为空值！"),
    SPDATA_NOFIND_ERROR(12011,"找不到审批数据！"),
    CREATE_ERROR(12012,"找不到起草人！"),
    APPLYER_NOFIND_ERROR(12013,"找不到申请人！"),
    PREHANDLERSW_NOFIND(12014,"找不到办理人数据"),
    FLOWRECORD_NOFIND_ERROR(12015,"退回路径上没有找到记录！"),
    PAUSEAPPROVER_NOFIND_ERROR(12016,"找不到暂时的办理人！"),
    USERID_ERROR(12017,"找不到用户！"),
    FLOWRECORD_START_NOFIND_ERROR(12018,"退回路径上没有找到记录！"),
    ORG_USER_ERROR(12020,"找不到用户对应的部门或公司！"),
    APPROVERFUNC_ERROR(12021,"办理函数的选项条件无法找到对应的用户记录！"),
    FLOWSUB_FLOWID_NOFIND(12022,"子流程的对应流程没有配置！"),
    SUBFLOW_NOFIND_ERROR(12023, "找不到子流程！"),
    SUBFLOW_APPROVER_NOFIND(12024, "子流程的办理人缺少配置！"),
    FORKCONDITION_NOFIND(12025, "决策的条件为空值！"),
    CURUSER_NOFIND(12026, "找不到当前用户"),
    PATHSTEP_NOFIND(12027, "找不到可用的流向！"),
    /**
     * 20100-20200 逻辑错误
     */
    FLOWSTATUS_END_ERROR(20103,"流程已经结束，不能允许操作！"),
    FLOWSTATUS_OVER_ERROR(20104,"流程已经终止，不能允许操作！"),
    FLOWRETURN_ZZHS_ZZHQ(20105,"组织会审和组织会签不允许退回操作"),
    FLOWRETURN_STEP_SAME(20106,"目标环节和当前环节相同，不能操作退回"),
    /**
     * 20300-20399 检查流程配置
     */
    CONFIG_BACK(20300,"当前环节的取回单据的配置开关没有开启，不能执行该操作"),
    CONFIG_OVER(20301,"当前环节的作废单据的配置开关没有开启，不能执行该操作"),
    CONFIG_TRANSMIT(20302,"当前环节的转审单据的配置开关没有开启，不能执行该操作"),
    CONFIG_RETURN(20303,"当前环节的退回单据的配置开关没有开启，不能执行该操作"),
    CONFIG_HQ(20304,"当前环节的组织会签单据的配置开关没有开启，不能执行该操作"),
    CONFIG_HS(20305,"当前环节的组织会审单据的配置开关没有开启，不能执行该操作"),
    CONFIG_PREHANDLERSW(20306,"当前环节的“办理人”页签中环节审批人没有开启或者是没有指定取值环节"),
    CONFIG_DEPTLEADERSW(20307,"当前环节的“办理人”页签中组织架构没有开启"),
    CONFIG_DEPTLEADERSW_R(20308,"当前环节的“办理人”页签中组织架构当前人类型无效"),
    CONFIG_DEPTLEADERSW_D(20309,"当前环节的“办理人”页签中组织架构当前人要获取的上级无效"),
    CONFIG_APPROVERFIELD(20310,"当前环节的“办理人”页签中缺少配置"),
    CONFIG_APPROVERFUNC(20311,"当前环节的“办理人”页签中的办理函数缺少配置"),
    CONFIG_APPROVERFUNC_ORG(20312,"当前环节的“办理人”页签中的办理函数的计算组织没有选择"),



    FLOWNO_CODE1(20001,"流程编码的前缀不能为空！"),
    FLOWNO_CODE2(20002,"流程编码的时间编码不能为空！"),
    FLOWNO_CODE3(20003,"流程编码的流水号位数不能为空！"),
    STEPAPPROVERTYPE_NOFIND(20004,"环节配置中的办理人设置无效！"),

    BACK_CONFIG_NO(20005,"子流程，会签，会审。不允许取回"),
    OVER_CONFIG_NO(20006,"子流程，会签，会审。不允许终止"),
    RETURN_CONFIG_NO(20007,"退回流程不能操作取回流程！"),

    TASK_APPROVER(30001,"办理人数量不能0！"),
    TASKHQ_APPROVERTYPE(30003,"无效审批类型！"),
    HSWay_FIELD(30004,"审批数据中的会审策略为空值！"),
    STEPTYPE_ERROR(30003,"无效环节类型！");

    private final int code;
    private final String desc;

    ErrorCodeEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public int getCode() {
        return this.code;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return "ErrorCodeEnum{" + "code='" + code + '\'' + ", desc='" + desc + '\'' + '}';
    }

}
